/**
 */
package org.omg.sysml.lang.sysml.provider;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

import org.omg.sysml.lang.sysml.util.SysMLAdapterFactory;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class SysMLItemProviderAdapterFactory extends SysMLAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
	/**
	 * This keeps track of the root adapter factory that delegates to this adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComposedAdapterFactory parentAdapterFactory;

	/**
	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IChangeNotifier changeNotifier = new ChangeNotifier();

	/**
	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Collection<Object> supportedTypes = new ArrayList<Object>();

	/**
	 * This constructs an instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SysMLItemProviderAdapterFactory() {
		supportedTypes.add(IEditingDomainItemProvider.class);
		supportedTypes.add(IStructuredItemContentProvider.class);
		supportedTypes.add(ITreeItemContentProvider.class);
		supportedTypes.add(IItemLabelProvider.class);
		supportedTypes.add(IItemPropertySource.class);
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Comment} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CommentItemProvider commentItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Comment}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCommentAdapter() {
		if (commentItemProvider == null) {
			commentItemProvider = new CommentItemProvider(this);
		}

		return commentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AnnotatingElement} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AnnotatingElementItemProvider annotatingElementItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AnnotatingElement}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAnnotatingElementAdapter() {
		if (annotatingElementItemProvider == null) {
			annotatingElementItemProvider = new AnnotatingElementItemProvider(this);
		}

		return annotatingElementItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.OwningMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected OwningMembershipItemProvider owningMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.OwningMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createOwningMembershipAdapter() {
		if (owningMembershipItemProvider == null) {
			owningMembershipItemProvider = new OwningMembershipItemProvider(this);
		}

		return owningMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Membership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MembershipItemProvider membershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Membership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMembershipAdapter() {
		if (membershipItemProvider == null) {
			membershipItemProvider = new MembershipItemProvider(this);
		}

		return membershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Namespace} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NamespaceItemProvider namespaceItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Namespace}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNamespaceAdapter() {
		if (namespaceItemProvider == null) {
			namespaceItemProvider = new NamespaceItemProvider(this);
		}

		return namespaceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Documentation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DocumentationItemProvider documentationItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Documentation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDocumentationAdapter() {
		if (documentationItemProvider == null) {
			documentationItemProvider = new DocumentationItemProvider(this);
		}

		return documentationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Annotation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AnnotationItemProvider annotationItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Annotation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAnnotationAdapter() {
		if (annotationItemProvider == null) {
			annotationItemProvider = new AnnotationItemProvider(this);
		}

		return annotationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.TextualRepresentation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TextualRepresentationItemProvider textualRepresentationItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.TextualRepresentation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTextualRepresentationAdapter() {
		if (textualRepresentationItemProvider == null) {
			textualRepresentationItemProvider = new TextualRepresentationItemProvider(this);
		}

		return textualRepresentationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.MembershipImport} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MembershipImportItemProvider membershipImportItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.MembershipImport}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMembershipImportAdapter() {
		if (membershipImportItemProvider == null) {
			membershipImportItemProvider = new MembershipImportItemProvider(this);
		}

		return membershipImportItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.NamespaceImport} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NamespaceImportItemProvider namespaceImportItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.NamespaceImport}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNamespaceImportAdapter() {
		if (namespaceImportItemProvider == null) {
			namespaceImportItemProvider = new NamespaceImportItemProvider(this);
		}

		return namespaceImportItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.MultiplicityRange} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MultiplicityRangeItemProvider multiplicityRangeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.MultiplicityRange}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMultiplicityRangeAdapter() {
		if (multiplicityRangeItemProvider == null) {
			multiplicityRangeItemProvider = new MultiplicityRangeItemProvider(this);
		}

		return multiplicityRangeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Multiplicity} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MultiplicityItemProvider multiplicityItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Multiplicity}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMultiplicityAdapter() {
		if (multiplicityItemProvider == null) {
			multiplicityItemProvider = new MultiplicityItemProvider(this);
		}

		return multiplicityItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Feature} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureItemProvider featureItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Feature}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureAdapter() {
		if (featureItemProvider == null) {
			featureItemProvider = new FeatureItemProvider(this);
		}

		return featureItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Type} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TypeItemProvider typeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Type}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTypeAdapter() {
		if (typeItemProvider == null) {
			typeItemProvider = new TypeItemProvider(this);
		}

		return typeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Specialization} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SpecializationItemProvider specializationItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Specialization}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSpecializationAdapter() {
		if (specializationItemProvider == null) {
			specializationItemProvider = new SpecializationItemProvider(this);
		}

		return specializationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FeatureMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureMembershipItemProvider featureMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FeatureMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureMembershipAdapter() {
		if (featureMembershipItemProvider == null) {
			featureMembershipItemProvider = new FeatureMembershipItemProvider(this);
		}

		return featureMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Conjugation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConjugationItemProvider conjugationItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Conjugation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConjugationAdapter() {
		if (conjugationItemProvider == null) {
			conjugationItemProvider = new ConjugationItemProvider(this);
		}

		return conjugationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Intersecting} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IntersectingItemProvider intersectingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Intersecting}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIntersectingAdapter() {
		if (intersectingItemProvider == null) {
			intersectingItemProvider = new IntersectingItemProvider(this);
		}

		return intersectingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Unioning} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UnioningItemProvider unioningItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Unioning}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUnioningAdapter() {
		if (unioningItemProvider == null) {
			unioningItemProvider = new UnioningItemProvider(this);
		}

		return unioningItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Disjoining} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DisjoiningItemProvider disjoiningItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Disjoining}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDisjoiningAdapter() {
		if (disjoiningItemProvider == null) {
			disjoiningItemProvider = new DisjoiningItemProvider(this);
		}

		return disjoiningItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Differencing} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DifferencingItemProvider differencingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Differencing}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDifferencingAdapter() {
		if (differencingItemProvider == null) {
			differencingItemProvider = new DifferencingItemProvider(this);
		}

		return differencingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Redefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RedefinitionItemProvider redefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Redefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRedefinitionAdapter() {
		if (redefinitionItemProvider == null) {
			redefinitionItemProvider = new RedefinitionItemProvider(this);
		}

		return redefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Subsetting} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubsettingItemProvider subsettingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Subsetting}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubsettingAdapter() {
		if (subsettingItemProvider == null) {
			subsettingItemProvider = new SubsettingItemProvider(this);
		}

		return subsettingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FeatureTyping} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureTypingItemProvider featureTypingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FeatureTyping}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureTypingAdapter() {
		if (featureTypingItemProvider == null) {
			featureTypingItemProvider = new FeatureTypingItemProvider(this);
		}

		return featureTypingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.TypeFeaturing} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TypeFeaturingItemProvider typeFeaturingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.TypeFeaturing}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTypeFeaturingAdapter() {
		if (typeFeaturingItemProvider == null) {
			typeFeaturingItemProvider = new TypeFeaturingItemProvider(this);
		}

		return typeFeaturingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FeatureInverting} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureInvertingItemProvider featureInvertingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FeatureInverting}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureInvertingAdapter() {
		if (featureInvertingItemProvider == null) {
			featureInvertingItemProvider = new FeatureInvertingItemProvider(this);
		}

		return featureInvertingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FeatureChaining} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureChainingItemProvider featureChainingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FeatureChaining}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureChainingAdapter() {
		if (featureChainingItemProvider == null) {
			featureChainingItemProvider = new FeatureChainingItemProvider(this);
		}

		return featureChainingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ReferenceSubsetting} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReferenceSubsettingItemProvider referenceSubsettingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ReferenceSubsetting}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReferenceSubsettingAdapter() {
		if (referenceSubsettingItemProvider == null) {
			referenceSubsettingItemProvider = new ReferenceSubsettingItemProvider(this);
		}

		return referenceSubsettingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.CrossSubsetting} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CrossSubsettingItemProvider crossSubsettingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.CrossSubsetting}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCrossSubsettingAdapter() {
		if (crossSubsettingItemProvider == null) {
			crossSubsettingItemProvider = new CrossSubsettingItemProvider(this);
		}

		return crossSubsettingItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Expression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ExpressionItemProvider expressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Expression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createExpressionAdapter() {
		if (expressionItemProvider == null) {
			expressionItemProvider = new ExpressionItemProvider(this);
		}

		return expressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Step} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StepItemProvider stepItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Step}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStepAdapter() {
		if (stepItemProvider == null) {
			stepItemProvider = new StepItemProvider(this);
		}

		return stepItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Behavior} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BehaviorItemProvider behaviorItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Behavior}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBehaviorAdapter() {
		if (behaviorItemProvider == null) {
			behaviorItemProvider = new BehaviorItemProvider(this);
		}

		return behaviorItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Class} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ClassItemProvider classItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Class}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createClassAdapter() {
		if (classItemProvider == null) {
			classItemProvider = new ClassItemProvider(this);
		}

		return classItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Classifier} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ClassifierItemProvider classifierItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Classifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createClassifierAdapter() {
		if (classifierItemProvider == null) {
			classifierItemProvider = new ClassifierItemProvider(this);
		}

		return classifierItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Subclassification} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubclassificationItemProvider subclassificationItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Subclassification}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubclassificationAdapter() {
		if (subclassificationItemProvider == null) {
			subclassificationItemProvider = new SubclassificationItemProvider(this);
		}

		return subclassificationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Function} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FunctionItemProvider functionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Function}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFunctionAdapter() {
		if (functionItemProvider == null) {
			functionItemProvider = new FunctionItemProvider(this);
		}

		return functionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AssociationStructure} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AssociationStructureItemProvider associationStructureItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AssociationStructure}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAssociationStructureAdapter() {
		if (associationStructureItemProvider == null) {
			associationStructureItemProvider = new AssociationStructureItemProvider(this);
		}

		return associationStructureItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Structure} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StructureItemProvider structureItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Structure}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStructureAdapter() {
		if (structureItemProvider == null) {
			structureItemProvider = new StructureItemProvider(this);
		}

		return structureItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Association} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AssociationItemProvider associationItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Association}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAssociationAdapter() {
		if (associationItemProvider == null) {
			associationItemProvider = new AssociationItemProvider(this);
		}

		return associationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Package} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PackageItemProvider packageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Package}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPackageAdapter() {
		if (packageItemProvider == null) {
			packageItemProvider = new PackageItemProvider(this);
		}

		return packageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.LibraryPackage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LibraryPackageItemProvider libraryPackageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.LibraryPackage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLibraryPackageAdapter() {
		if (libraryPackageItemProvider == null) {
			libraryPackageItemProvider = new LibraryPackageItemProvider(this);
		}

		return libraryPackageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ElementFilterMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ElementFilterMembershipItemProvider elementFilterMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ElementFilterMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createElementFilterMembershipAdapter() {
		if (elementFilterMembershipItemProvider == null) {
			elementFilterMembershipItemProvider = new ElementFilterMembershipItemProvider(this);
		}

		return elementFilterMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FeatureValue} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureValueItemProvider featureValueItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FeatureValue}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureValueAdapter() {
		if (featureValueItemProvider == null) {
			featureValueItemProvider = new FeatureValueItemProvider(this);
		}

		return featureValueItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Invariant} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InvariantItemProvider invariantItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Invariant}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInvariantAdapter() {
		if (invariantItemProvider == null) {
			invariantItemProvider = new InvariantItemProvider(this);
		}

		return invariantItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.BooleanExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BooleanExpressionItemProvider booleanExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.BooleanExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBooleanExpressionAdapter() {
		if (booleanExpressionItemProvider == null) {
			booleanExpressionItemProvider = new BooleanExpressionItemProvider(this);
		}

		return booleanExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Predicate} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PredicateItemProvider predicateItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Predicate}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPredicateAdapter() {
		if (predicateItemProvider == null) {
			predicateItemProvider = new PredicateItemProvider(this);
		}

		return predicateItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ResultExpressionMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ResultExpressionMembershipItemProvider resultExpressionMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ResultExpressionMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createResultExpressionMembershipAdapter() {
		if (resultExpressionMembershipItemProvider == null) {
			resultExpressionMembershipItemProvider = new ResultExpressionMembershipItemProvider(this);
		}

		return resultExpressionMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ReturnParameterMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReturnParameterMembershipItemProvider returnParameterMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ReturnParameterMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReturnParameterMembershipAdapter() {
		if (returnParameterMembershipItemProvider == null) {
			returnParameterMembershipItemProvider = new ReturnParameterMembershipItemProvider(this);
		}

		return returnParameterMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ParameterMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ParameterMembershipItemProvider parameterMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ParameterMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createParameterMembershipAdapter() {
		if (parameterMembershipItemProvider == null) {
			parameterMembershipItemProvider = new ParameterMembershipItemProvider(this);
		}

		return parameterMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.DataType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DataTypeItemProvider dataTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.DataType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDataTypeAdapter() {
		if (dataTypeItemProvider == null) {
			dataTypeItemProvider = new DataTypeItemProvider(this);
		}

		return dataTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FeatureChainExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureChainExpressionItemProvider featureChainExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FeatureChainExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureChainExpressionAdapter() {
		if (featureChainExpressionItemProvider == null) {
			featureChainExpressionItemProvider = new FeatureChainExpressionItemProvider(this);
		}

		return featureChainExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.OperatorExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected OperatorExpressionItemProvider operatorExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.OperatorExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createOperatorExpressionAdapter() {
		if (operatorExpressionItemProvider == null) {
			operatorExpressionItemProvider = new OperatorExpressionItemProvider(this);
		}

		return operatorExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.InvocationExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InvocationExpressionItemProvider invocationExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.InvocationExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInvocationExpressionAdapter() {
		if (invocationExpressionItemProvider == null) {
			invocationExpressionItemProvider = new InvocationExpressionItemProvider(this);
		}

		return invocationExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.LiteralInteger} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LiteralIntegerItemProvider literalIntegerItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.LiteralInteger}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLiteralIntegerAdapter() {
		if (literalIntegerItemProvider == null) {
			literalIntegerItemProvider = new LiteralIntegerItemProvider(this);
		}

		return literalIntegerItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.LiteralExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LiteralExpressionItemProvider literalExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.LiteralExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLiteralExpressionAdapter() {
		if (literalExpressionItemProvider == null) {
			literalExpressionItemProvider = new LiteralExpressionItemProvider(this);
		}

		return literalExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.NullExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NullExpressionItemProvider nullExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.NullExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNullExpressionAdapter() {
		if (nullExpressionItemProvider == null) {
			nullExpressionItemProvider = new NullExpressionItemProvider(this);
		}

		return nullExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.IndexExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IndexExpressionItemProvider indexExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.IndexExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIndexExpressionAdapter() {
		if (indexExpressionItemProvider == null) {
			indexExpressionItemProvider = new IndexExpressionItemProvider(this);
		}

		return indexExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.LiteralInfinity} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LiteralInfinityItemProvider literalInfinityItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.LiteralInfinity}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLiteralInfinityAdapter() {
		if (literalInfinityItemProvider == null) {
			literalInfinityItemProvider = new LiteralInfinityItemProvider(this);
		}

		return literalInfinityItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.MetadataAccessExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MetadataAccessExpressionItemProvider metadataAccessExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.MetadataAccessExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMetadataAccessExpressionAdapter() {
		if (metadataAccessExpressionItemProvider == null) {
			metadataAccessExpressionItemProvider = new MetadataAccessExpressionItemProvider(this);
		}

		return metadataAccessExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.MetadataFeature} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MetadataFeatureItemProvider metadataFeatureItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.MetadataFeature}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMetadataFeatureAdapter() {
		if (metadataFeatureItemProvider == null) {
			metadataFeatureItemProvider = new MetadataFeatureItemProvider(this);
		}

		return metadataFeatureItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Metaclass} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MetaclassItemProvider metaclassItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Metaclass}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMetaclassAdapter() {
		if (metaclassItemProvider == null) {
			metaclassItemProvider = new MetaclassItemProvider(this);
		}

		return metaclassItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.LiteralRational} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LiteralRationalItemProvider literalRationalItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.LiteralRational}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLiteralRationalAdapter() {
		if (literalRationalItemProvider == null) {
			literalRationalItemProvider = new LiteralRationalItemProvider(this);
		}

		return literalRationalItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConstructorExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstructorExpressionItemProvider constructorExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConstructorExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConstructorExpressionAdapter() {
		if (constructorExpressionItemProvider == null) {
			constructorExpressionItemProvider = new ConstructorExpressionItemProvider(this);
		}

		return constructorExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.SelectExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SelectExpressionItemProvider selectExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.SelectExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSelectExpressionAdapter() {
		if (selectExpressionItemProvider == null) {
			selectExpressionItemProvider = new SelectExpressionItemProvider(this);
		}

		return selectExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.LiteralString} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LiteralStringItemProvider literalStringItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.LiteralString}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLiteralStringAdapter() {
		if (literalStringItemProvider == null) {
			literalStringItemProvider = new LiteralStringItemProvider(this);
		}

		return literalStringItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FeatureReferenceExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureReferenceExpressionItemProvider featureReferenceExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FeatureReferenceExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureReferenceExpressionAdapter() {
		if (featureReferenceExpressionItemProvider == null) {
			featureReferenceExpressionItemProvider = new FeatureReferenceExpressionItemProvider(this);
		}

		return featureReferenceExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.LiteralBoolean} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LiteralBooleanItemProvider literalBooleanItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.LiteralBoolean}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLiteralBooleanAdapter() {
		if (literalBooleanItemProvider == null) {
			literalBooleanItemProvider = new LiteralBooleanItemProvider(this);
		}

		return literalBooleanItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.CollectExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CollectExpressionItemProvider collectExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.CollectExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCollectExpressionAdapter() {
		if (collectExpressionItemProvider == null) {
			collectExpressionItemProvider = new CollectExpressionItemProvider(this);
		}

		return collectExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Interaction} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InteractionItemProvider interactionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Interaction}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInteractionAdapter() {
		if (interactionItemProvider == null) {
			interactionItemProvider = new InteractionItemProvider(this);
		}

		return interactionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.SuccessionFlow} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SuccessionFlowItemProvider successionFlowItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.SuccessionFlow}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSuccessionFlowAdapter() {
		if (successionFlowItemProvider == null) {
			successionFlowItemProvider = new SuccessionFlowItemProvider(this);
		}

		return successionFlowItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Flow} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FlowItemProvider flowItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Flow}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFlowAdapter() {
		if (flowItemProvider == null) {
			flowItemProvider = new FlowItemProvider(this);
		}

		return flowItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FlowEnd} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FlowEndItemProvider flowEndItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FlowEnd}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFlowEndAdapter() {
		if (flowEndItemProvider == null) {
			flowEndItemProvider = new FlowEndItemProvider(this);
		}

		return flowEndItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.PayloadFeature} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PayloadFeatureItemProvider payloadFeatureItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.PayloadFeature}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPayloadFeatureAdapter() {
		if (payloadFeatureItemProvider == null) {
			payloadFeatureItemProvider = new PayloadFeatureItemProvider(this);
		}

		return payloadFeatureItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Succession} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SuccessionItemProvider successionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Succession}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSuccessionAdapter() {
		if (successionItemProvider == null) {
			successionItemProvider = new SuccessionItemProvider(this);
		}

		return successionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Connector} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectorItemProvider connectorItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Connector}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConnectorAdapter() {
		if (connectorItemProvider == null) {
			connectorItemProvider = new ConnectorItemProvider(this);
		}

		return connectorItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.BindingConnector} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BindingConnectorItemProvider bindingConnectorItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.BindingConnector}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBindingConnectorAdapter() {
		if (bindingConnectorItemProvider == null) {
			bindingConnectorItemProvider = new BindingConnectorItemProvider(this);
		}

		return bindingConnectorItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.EndFeatureMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EndFeatureMembershipItemProvider endFeatureMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.EndFeatureMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEndFeatureMembershipAdapter() {
		if (endFeatureMembershipItemProvider == null) {
			endFeatureMembershipItemProvider = new EndFeatureMembershipItemProvider(this);
		}

		return endFeatureMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.PartDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PartDefinitionItemProvider partDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.PartDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPartDefinitionAdapter() {
		if (partDefinitionItemProvider == null) {
			partDefinitionItemProvider = new PartDefinitionItemProvider(this);
		}

		return partDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ItemDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ItemDefinitionItemProvider itemDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ItemDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createItemDefinitionAdapter() {
		if (itemDefinitionItemProvider == null) {
			itemDefinitionItemProvider = new ItemDefinitionItemProvider(this);
		}

		return itemDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.OccurrenceDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected OccurrenceDefinitionItemProvider occurrenceDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.OccurrenceDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createOccurrenceDefinitionAdapter() {
		if (occurrenceDefinitionItemProvider == null) {
			occurrenceDefinitionItemProvider = new OccurrenceDefinitionItemProvider(this);
		}

		return occurrenceDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Definition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DefinitionItemProvider definitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Definition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDefinitionAdapter() {
		if (definitionItemProvider == null) {
			definitionItemProvider = new DefinitionItemProvider(this);
		}

		return definitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Usage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UsageItemProvider usageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Usage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUsageAdapter() {
		if (usageItemProvider == null) {
			usageItemProvider = new UsageItemProvider(this);
		}

		return usageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.PortUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortUsageItemProvider portUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.PortUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortUsageAdapter() {
		if (portUsageItemProvider == null) {
			portUsageItemProvider = new PortUsageItemProvider(this);
		}

		return portUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FlowUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FlowUsageItemProvider flowUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FlowUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFlowUsageAdapter() {
		if (flowUsageItemProvider == null) {
			flowUsageItemProvider = new FlowUsageItemProvider(this);
		}

		return flowUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.OccurrenceUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected OccurrenceUsageItemProvider occurrenceUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.OccurrenceUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createOccurrenceUsageAdapter() {
		if (occurrenceUsageItemProvider == null) {
			occurrenceUsageItemProvider = new OccurrenceUsageItemProvider(this);
		}

		return occurrenceUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.PortDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortDefinitionItemProvider portDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.PortDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortDefinitionAdapter() {
		if (portDefinitionItemProvider == null) {
			portDefinitionItemProvider = new PortDefinitionItemProvider(this);
		}

		return portDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConjugatedPortDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConjugatedPortDefinitionItemProvider conjugatedPortDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConjugatedPortDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConjugatedPortDefinitionAdapter() {
		if (conjugatedPortDefinitionItemProvider == null) {
			conjugatedPortDefinitionItemProvider = new ConjugatedPortDefinitionItemProvider(this);
		}

		return conjugatedPortDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.PortConjugation} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PortConjugationItemProvider portConjugationItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.PortConjugation}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPortConjugationAdapter() {
		if (portConjugationItemProvider == null) {
			portConjugationItemProvider = new PortConjugationItemProvider(this);
		}

		return portConjugationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ActionUsageItemProvider actionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createActionUsageAdapter() {
		if (actionUsageItemProvider == null) {
			actionUsageItemProvider = new ActionUsageItemProvider(this);
		}

		return actionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.StateUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StateUsageItemProvider stateUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.StateUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStateUsageAdapter() {
		if (stateUsageItemProvider == null) {
			stateUsageItemProvider = new StateUsageItemProvider(this);
		}

		return stateUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConstraintUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstraintUsageItemProvider constraintUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConstraintUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConstraintUsageAdapter() {
		if (constraintUsageItemProvider == null) {
			constraintUsageItemProvider = new ConstraintUsageItemProvider(this);
		}

		return constraintUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.TransitionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TransitionUsageItemProvider transitionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.TransitionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTransitionUsageAdapter() {
		if (transitionUsageItemProvider == null) {
			transitionUsageItemProvider = new TransitionUsageItemProvider(this);
		}

		return transitionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AcceptActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AcceptActionUsageItemProvider acceptActionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AcceptActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAcceptActionUsageAdapter() {
		if (acceptActionUsageItemProvider == null) {
			acceptActionUsageItemProvider = new AcceptActionUsageItemProvider(this);
		}

		return acceptActionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ReferenceUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ReferenceUsageItemProvider referenceUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ReferenceUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createReferenceUsageAdapter() {
		if (referenceUsageItemProvider == null) {
			referenceUsageItemProvider = new ReferenceUsageItemProvider(this);
		}

		return referenceUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.RequirementUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RequirementUsageItemProvider requirementUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.RequirementUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRequirementUsageAdapter() {
		if (requirementUsageItemProvider == null) {
			requirementUsageItemProvider = new RequirementUsageItemProvider(this);
		}

		return requirementUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.RequirementDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RequirementDefinitionItemProvider requirementDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.RequirementDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRequirementDefinitionAdapter() {
		if (requirementDefinitionItemProvider == null) {
			requirementDefinitionItemProvider = new RequirementDefinitionItemProvider(this);
		}

		return requirementDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConstraintDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConstraintDefinitionItemProvider constraintDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConstraintDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConstraintDefinitionAdapter() {
		if (constraintDefinitionItemProvider == null) {
			constraintDefinitionItemProvider = new ConstraintDefinitionItemProvider(this);
		}

		return constraintDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConcernUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConcernUsageItemProvider concernUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConcernUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConcernUsageAdapter() {
		if (concernUsageItemProvider == null) {
			concernUsageItemProvider = new ConcernUsageItemProvider(this);
		}

		return concernUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConcernDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConcernDefinitionItemProvider concernDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConcernDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConcernDefinitionAdapter() {
		if (concernDefinitionItemProvider == null) {
			concernDefinitionItemProvider = new ConcernDefinitionItemProvider(this);
		}

		return concernDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.PartUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PartUsageItemProvider partUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.PartUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPartUsageAdapter() {
		if (partUsageItemProvider == null) {
			partUsageItemProvider = new PartUsageItemProvider(this);
		}

		return partUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ItemUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ItemUsageItemProvider itemUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ItemUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createItemUsageAdapter() {
		if (itemUsageItemProvider == null) {
			itemUsageItemProvider = new ItemUsageItemProvider(this);
		}

		return itemUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.CalculationUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CalculationUsageItemProvider calculationUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.CalculationUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCalculationUsageAdapter() {
		if (calculationUsageItemProvider == null) {
			calculationUsageItemProvider = new CalculationUsageItemProvider(this);
		}

		return calculationUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.CaseUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CaseUsageItemProvider caseUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.CaseUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCaseUsageAdapter() {
		if (caseUsageItemProvider == null) {
			caseUsageItemProvider = new CaseUsageItemProvider(this);
		}

		return caseUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.CaseDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CaseDefinitionItemProvider caseDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.CaseDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCaseDefinitionAdapter() {
		if (caseDefinitionItemProvider == null) {
			caseDefinitionItemProvider = new CaseDefinitionItemProvider(this);
		}

		return caseDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.CalculationDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CalculationDefinitionItemProvider calculationDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.CalculationDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCalculationDefinitionAdapter() {
		if (calculationDefinitionItemProvider == null) {
			calculationDefinitionItemProvider = new CalculationDefinitionItemProvider(this);
		}

		return calculationDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ActionDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ActionDefinitionItemProvider actionDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ActionDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createActionDefinitionAdapter() {
		if (actionDefinitionItemProvider == null) {
			actionDefinitionItemProvider = new ActionDefinitionItemProvider(this);
		}

		return actionDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AnalysisCaseUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AnalysisCaseUsageItemProvider analysisCaseUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AnalysisCaseUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAnalysisCaseUsageAdapter() {
		if (analysisCaseUsageItemProvider == null) {
			analysisCaseUsageItemProvider = new AnalysisCaseUsageItemProvider(this);
		}

		return analysisCaseUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AnalysisCaseDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AnalysisCaseDefinitionItemProvider analysisCaseDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AnalysisCaseDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAnalysisCaseDefinitionAdapter() {
		if (analysisCaseDefinitionItemProvider == null) {
			analysisCaseDefinitionItemProvider = new AnalysisCaseDefinitionItemProvider(this);
		}

		return analysisCaseDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.VariantMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VariantMembershipItemProvider variantMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.VariantMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVariantMembershipAdapter() {
		if (variantMembershipItemProvider == null) {
			variantMembershipItemProvider = new VariantMembershipItemProvider(this);
		}

		return variantMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.InterfaceUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InterfaceUsageItemProvider interfaceUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.InterfaceUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInterfaceUsageAdapter() {
		if (interfaceUsageItemProvider == null) {
			interfaceUsageItemProvider = new InterfaceUsageItemProvider(this);
		}

		return interfaceUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConnectionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectionUsageItemProvider connectionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConnectionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConnectionUsageAdapter() {
		if (connectionUsageItemProvider == null) {
			connectionUsageItemProvider = new ConnectionUsageItemProvider(this);
		}

		return connectionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.InterfaceDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InterfaceDefinitionItemProvider interfaceDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.InterfaceDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInterfaceDefinitionAdapter() {
		if (interfaceDefinitionItemProvider == null) {
			interfaceDefinitionItemProvider = new InterfaceDefinitionItemProvider(this);
		}

		return interfaceDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConnectionDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConnectionDefinitionItemProvider connectionDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConnectionDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConnectionDefinitionAdapter() {
		if (connectionDefinitionItemProvider == null) {
			connectionDefinitionItemProvider = new ConnectionDefinitionItemProvider(this);
		}

		return connectionDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AttributeUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AttributeUsageItemProvider attributeUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AttributeUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAttributeUsageAdapter() {
		if (attributeUsageItemProvider == null) {
			attributeUsageItemProvider = new AttributeUsageItemProvider(this);
		}

		return attributeUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ViewUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ViewUsageItemProvider viewUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ViewUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createViewUsageAdapter() {
		if (viewUsageItemProvider == null) {
			viewUsageItemProvider = new ViewUsageItemProvider(this);
		}

		return viewUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ViewDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ViewDefinitionItemProvider viewDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ViewDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createViewDefinitionAdapter() {
		if (viewDefinitionItemProvider == null) {
			viewDefinitionItemProvider = new ViewDefinitionItemProvider(this);
		}

		return viewDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ViewpointUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ViewpointUsageItemProvider viewpointUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ViewpointUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createViewpointUsageAdapter() {
		if (viewpointUsageItemProvider == null) {
			viewpointUsageItemProvider = new ViewpointUsageItemProvider(this);
		}

		return viewpointUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ViewpointDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ViewpointDefinitionItemProvider viewpointDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ViewpointDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createViewpointDefinitionAdapter() {
		if (viewpointDefinitionItemProvider == null) {
			viewpointDefinitionItemProvider = new ViewpointDefinitionItemProvider(this);
		}

		return viewpointDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.RenderingUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RenderingUsageItemProvider renderingUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.RenderingUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRenderingUsageAdapter() {
		if (renderingUsageItemProvider == null) {
			renderingUsageItemProvider = new RenderingUsageItemProvider(this);
		}

		return renderingUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.RenderingDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RenderingDefinitionItemProvider renderingDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.RenderingDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRenderingDefinitionAdapter() {
		if (renderingDefinitionItemProvider == null) {
			renderingDefinitionItemProvider = new RenderingDefinitionItemProvider(this);
		}

		return renderingDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.VerificationCaseUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VerificationCaseUsageItemProvider verificationCaseUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.VerificationCaseUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVerificationCaseUsageAdapter() {
		if (verificationCaseUsageItemProvider == null) {
			verificationCaseUsageItemProvider = new VerificationCaseUsageItemProvider(this);
		}

		return verificationCaseUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.VerificationCaseDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected VerificationCaseDefinitionItemProvider verificationCaseDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.VerificationCaseDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createVerificationCaseDefinitionAdapter() {
		if (verificationCaseDefinitionItemProvider == null) {
			verificationCaseDefinitionItemProvider = new VerificationCaseDefinitionItemProvider(this);
		}

		return verificationCaseDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.EnumerationUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EnumerationUsageItemProvider enumerationUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.EnumerationUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEnumerationUsageAdapter() {
		if (enumerationUsageItemProvider == null) {
			enumerationUsageItemProvider = new EnumerationUsageItemProvider(this);
		}

		return enumerationUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.EnumerationDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EnumerationDefinitionItemProvider enumerationDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.EnumerationDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEnumerationDefinitionAdapter() {
		if (enumerationDefinitionItemProvider == null) {
			enumerationDefinitionItemProvider = new EnumerationDefinitionItemProvider(this);
		}

		return enumerationDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AttributeDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AttributeDefinitionItemProvider attributeDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AttributeDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAttributeDefinitionAdapter() {
		if (attributeDefinitionItemProvider == null) {
			attributeDefinitionItemProvider = new AttributeDefinitionItemProvider(this);
		}

		return attributeDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AllocationUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AllocationUsageItemProvider allocationUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AllocationUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAllocationUsageAdapter() {
		if (allocationUsageItemProvider == null) {
			allocationUsageItemProvider = new AllocationUsageItemProvider(this);
		}

		return allocationUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AllocationDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AllocationDefinitionItemProvider allocationDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AllocationDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAllocationDefinitionAdapter() {
		if (allocationDefinitionItemProvider == null) {
			allocationDefinitionItemProvider = new AllocationDefinitionItemProvider(this);
		}

		return allocationDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.UseCaseUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UseCaseUsageItemProvider useCaseUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.UseCaseUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUseCaseUsageAdapter() {
		if (useCaseUsageItemProvider == null) {
			useCaseUsageItemProvider = new UseCaseUsageItemProvider(this);
		}

		return useCaseUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.UseCaseDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UseCaseDefinitionItemProvider useCaseDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.UseCaseDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUseCaseDefinitionAdapter() {
		if (useCaseDefinitionItemProvider == null) {
			useCaseDefinitionItemProvider = new UseCaseDefinitionItemProvider(this);
		}

		return useCaseDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.MetadataUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MetadataUsageItemProvider metadataUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.MetadataUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMetadataUsageAdapter() {
		if (metadataUsageItemProvider == null) {
			metadataUsageItemProvider = new MetadataUsageItemProvider(this);
		}

		return metadataUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AssertConstraintUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AssertConstraintUsageItemProvider assertConstraintUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AssertConstraintUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAssertConstraintUsageAdapter() {
		if (assertConstraintUsageItemProvider == null) {
			assertConstraintUsageItemProvider = new AssertConstraintUsageItemProvider(this);
		}

		return assertConstraintUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ObjectiveMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ObjectiveMembershipItemProvider objectiveMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ObjectiveMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createObjectiveMembershipAdapter() {
		if (objectiveMembershipItemProvider == null) {
			objectiveMembershipItemProvider = new ObjectiveMembershipItemProvider(this);
		}

		return objectiveMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FlowDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FlowDefinitionItemProvider flowDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FlowDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFlowDefinitionAdapter() {
		if (flowDefinitionItemProvider == null) {
			flowDefinitionItemProvider = new FlowDefinitionItemProvider(this);
		}

		return flowDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.SuccessionFlowUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SuccessionFlowUsageItemProvider successionFlowUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.SuccessionFlowUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSuccessionFlowUsageAdapter() {
		if (successionFlowUsageItemProvider == null) {
			successionFlowUsageItemProvider = new SuccessionFlowUsageItemProvider(this);
		}

		return successionFlowUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.IncludeUseCaseUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IncludeUseCaseUsageItemProvider includeUseCaseUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.IncludeUseCaseUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIncludeUseCaseUsageAdapter() {
		if (includeUseCaseUsageItemProvider == null) {
			includeUseCaseUsageItemProvider = new IncludeUseCaseUsageItemProvider(this);
		}

		return includeUseCaseUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.PerformActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected PerformActionUsageItemProvider performActionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.PerformActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createPerformActionUsageAdapter() {
		if (performActionUsageItemProvider == null) {
			performActionUsageItemProvider = new PerformActionUsageItemProvider(this);
		}

		return performActionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.EventOccurrenceUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EventOccurrenceUsageItemProvider eventOccurrenceUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.EventOccurrenceUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEventOccurrenceUsageAdapter() {
		if (eventOccurrenceUsageItemProvider == null) {
			eventOccurrenceUsageItemProvider = new EventOccurrenceUsageItemProvider(this);
		}

		return eventOccurrenceUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.MetadataDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MetadataDefinitionItemProvider metadataDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.MetadataDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMetadataDefinitionAdapter() {
		if (metadataDefinitionItemProvider == null) {
			metadataDefinitionItemProvider = new MetadataDefinitionItemProvider(this);
		}

		return metadataDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.Dependency} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DependencyItemProvider dependencyItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.Dependency}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDependencyAdapter() {
		if (dependencyItemProvider == null) {
			dependencyItemProvider = new DependencyItemProvider(this);
		}

		return dependencyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.MembershipExpose} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MembershipExposeItemProvider membershipExposeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.MembershipExpose}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMembershipExposeAdapter() {
		if (membershipExposeItemProvider == null) {
			membershipExposeItemProvider = new MembershipExposeItemProvider(this);
		}

		return membershipExposeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.NamespaceExpose} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected NamespaceExposeItemProvider namespaceExposeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.NamespaceExpose}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createNamespaceExposeAdapter() {
		if (namespaceExposeItemProvider == null) {
			namespaceExposeItemProvider = new NamespaceExposeItemProvider(this);
		}

		return namespaceExposeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ViewRenderingMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ViewRenderingMembershipItemProvider viewRenderingMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ViewRenderingMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createViewRenderingMembershipAdapter() {
		if (viewRenderingMembershipItemProvider == null) {
			viewRenderingMembershipItemProvider = new ViewRenderingMembershipItemProvider(this);
		}

		return viewRenderingMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.RequirementVerificationMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RequirementVerificationMembershipItemProvider requirementVerificationMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.RequirementVerificationMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRequirementVerificationMembershipAdapter() {
		if (requirementVerificationMembershipItemProvider == null) {
			requirementVerificationMembershipItemProvider = new RequirementVerificationMembershipItemProvider(this);
		}

		return requirementVerificationMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.RequirementConstraintMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RequirementConstraintMembershipItemProvider requirementConstraintMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.RequirementConstraintMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRequirementConstraintMembershipAdapter() {
		if (requirementConstraintMembershipItemProvider == null) {
			requirementConstraintMembershipItemProvider = new RequirementConstraintMembershipItemProvider(this);
		}

		return requirementConstraintMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.JoinNode} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected JoinNodeItemProvider joinNodeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.JoinNode}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createJoinNodeAdapter() {
		if (joinNodeItemProvider == null) {
			joinNodeItemProvider = new JoinNodeItemProvider(this);
		}

		return joinNodeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.TerminateActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TerminateActionUsageItemProvider terminateActionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.TerminateActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTerminateActionUsageAdapter() {
		if (terminateActionUsageItemProvider == null) {
			terminateActionUsageItemProvider = new TerminateActionUsageItemProvider(this);
		}

		return terminateActionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.TriggerInvocationExpression} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TriggerInvocationExpressionItemProvider triggerInvocationExpressionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.TriggerInvocationExpression}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTriggerInvocationExpressionAdapter() {
		if (triggerInvocationExpressionItemProvider == null) {
			triggerInvocationExpressionItemProvider = new TriggerInvocationExpressionItemProvider(this);
		}

		return triggerInvocationExpressionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.MergeNode} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MergeNodeItemProvider mergeNodeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.MergeNode}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMergeNodeAdapter() {
		if (mergeNodeItemProvider == null) {
			mergeNodeItemProvider = new MergeNodeItemProvider(this);
		}

		return mergeNodeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.AssignmentActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AssignmentActionUsageItemProvider assignmentActionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.AssignmentActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAssignmentActionUsageAdapter() {
		if (assignmentActionUsageItemProvider == null) {
			assignmentActionUsageItemProvider = new AssignmentActionUsageItemProvider(this);
		}

		return assignmentActionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.SendActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SendActionUsageItemProvider sendActionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.SendActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSendActionUsageAdapter() {
		if (sendActionUsageItemProvider == null) {
			sendActionUsageItemProvider = new SendActionUsageItemProvider(this);
		}

		return sendActionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.IfActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IfActionUsageItemProvider ifActionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.IfActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIfActionUsageAdapter() {
		if (ifActionUsageItemProvider == null) {
			ifActionUsageItemProvider = new IfActionUsageItemProvider(this);
		}

		return ifActionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ForLoopActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ForLoopActionUsageItemProvider forLoopActionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ForLoopActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createForLoopActionUsageAdapter() {
		if (forLoopActionUsageItemProvider == null) {
			forLoopActionUsageItemProvider = new ForLoopActionUsageItemProvider(this);
		}

		return forLoopActionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.WhileLoopActionUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected WhileLoopActionUsageItemProvider whileLoopActionUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.WhileLoopActionUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createWhileLoopActionUsageAdapter() {
		if (whileLoopActionUsageItemProvider == null) {
			whileLoopActionUsageItemProvider = new WhileLoopActionUsageItemProvider(this);
		}

		return whileLoopActionUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ForkNode} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ForkNodeItemProvider forkNodeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ForkNode}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createForkNodeAdapter() {
		if (forkNodeItemProvider == null) {
			forkNodeItemProvider = new ForkNodeItemProvider(this);
		}

		return forkNodeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.DecisionNode} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DecisionNodeItemProvider decisionNodeItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.DecisionNode}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDecisionNodeAdapter() {
		if (decisionNodeItemProvider == null) {
			decisionNodeItemProvider = new DecisionNodeItemProvider(this);
		}

		return decisionNodeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.StateSubactionMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StateSubactionMembershipItemProvider stateSubactionMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.StateSubactionMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStateSubactionMembershipAdapter() {
		if (stateSubactionMembershipItemProvider == null) {
			stateSubactionMembershipItemProvider = new StateSubactionMembershipItemProvider(this);
		}

		return stateSubactionMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.StateDefinition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StateDefinitionItemProvider stateDefinitionItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.StateDefinition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStateDefinitionAdapter() {
		if (stateDefinitionItemProvider == null) {
			stateDefinitionItemProvider = new StateDefinitionItemProvider(this);
		}

		return stateDefinitionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ExhibitStateUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ExhibitStateUsageItemProvider exhibitStateUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ExhibitStateUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createExhibitStateUsageAdapter() {
		if (exhibitStateUsageItemProvider == null) {
			exhibitStateUsageItemProvider = new ExhibitStateUsageItemProvider(this);
		}

		return exhibitStateUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.TransitionFeatureMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected TransitionFeatureMembershipItemProvider transitionFeatureMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.TransitionFeatureMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createTransitionFeatureMembershipAdapter() {
		if (transitionFeatureMembershipItemProvider == null) {
			transitionFeatureMembershipItemProvider = new TransitionFeatureMembershipItemProvider(this);
		}

		return transitionFeatureMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.SuccessionAsUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SuccessionAsUsageItemProvider successionAsUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.SuccessionAsUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSuccessionAsUsageAdapter() {
		if (successionAsUsageItemProvider == null) {
			successionAsUsageItemProvider = new SuccessionAsUsageItemProvider(this);
		}

		return successionAsUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.BindingConnectorAsUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected BindingConnectorAsUsageItemProvider bindingConnectorAsUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.BindingConnectorAsUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createBindingConnectorAsUsageAdapter() {
		if (bindingConnectorAsUsageItemProvider == null) {
			bindingConnectorAsUsageItemProvider = new BindingConnectorAsUsageItemProvider(this);
		}

		return bindingConnectorAsUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.FramedConcernMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FramedConcernMembershipItemProvider framedConcernMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.FramedConcernMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFramedConcernMembershipAdapter() {
		if (framedConcernMembershipItemProvider == null) {
			framedConcernMembershipItemProvider = new FramedConcernMembershipItemProvider(this);
		}

		return framedConcernMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ActorMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ActorMembershipItemProvider actorMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ActorMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createActorMembershipAdapter() {
		if (actorMembershipItemProvider == null) {
			actorMembershipItemProvider = new ActorMembershipItemProvider(this);
		}

		return actorMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.StakeholderMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected StakeholderMembershipItemProvider stakeholderMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.StakeholderMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createStakeholderMembershipAdapter() {
		if (stakeholderMembershipItemProvider == null) {
			stakeholderMembershipItemProvider = new StakeholderMembershipItemProvider(this);
		}

		return stakeholderMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.SubjectMembership} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SubjectMembershipItemProvider subjectMembershipItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.SubjectMembership}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSubjectMembershipAdapter() {
		if (subjectMembershipItemProvider == null) {
			subjectMembershipItemProvider = new SubjectMembershipItemProvider(this);
		}

		return subjectMembershipItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.SatisfyRequirementUsage} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SatisfyRequirementUsageItemProvider satisfyRequirementUsageItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.SatisfyRequirementUsage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSatisfyRequirementUsageAdapter() {
		if (satisfyRequirementUsageItemProvider == null) {
			satisfyRequirementUsageItemProvider = new SatisfyRequirementUsageItemProvider(this);
		}

		return satisfyRequirementUsageItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.omg.sysml.lang.sysml.ConjugatedPortTyping} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ConjugatedPortTypingItemProvider conjugatedPortTypingItemProvider;

	/**
	 * This creates an adapter for a {@link org.omg.sysml.lang.sysml.ConjugatedPortTyping}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createConjugatedPortTypingAdapter() {
		if (conjugatedPortTypingItemProvider == null) {
			conjugatedPortTypingItemProvider = new ConjugatedPortTypingItemProvider(this);
		}

		return conjugatedPortTypingItemProvider;
	}

	/**
	 * This returns the root adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public ComposeableAdapterFactory getRootAdapterFactory() {
		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
	}

	/**
	 * This sets the composed adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
		this.parentAdapterFactory = parentAdapterFactory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object type) {
		return supportedTypes.contains(type) || super.isFactoryForType(type);
	}

	/**
	 * This implementation substitutes the factory itself as the key for the adapter.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter adapt(Notifier notifier, Object type) {
		return super.adapt(notifier, this);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object adapt(Object object, Object type) {
		if (isFactoryForType(type)) {
			Object adapter = super.adapt(object, type);
			if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
				return adapter;
			}
		}

		return null;
	}

	/**
	 * This adds a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

	/**
	 * This removes a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void removeListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.removeListener(notifyChangedListener);
	}

	/**
	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void fireNotifyChanged(Notification notification) {
		changeNotifier.fireNotifyChanged(notification);

		if (parentAdapterFactory != null) {
			parentAdapterFactory.fireNotifyChanged(notification);
		}
	}

	/**
	 * This disposes all of the item providers created by this factory. 
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void dispose() {
		if (structureItemProvider != null) structureItemProvider.dispose();
		if (classItemProvider != null) classItemProvider.dispose();
		if (classifierItemProvider != null) classifierItemProvider.dispose();
		if (typeItemProvider != null) typeItemProvider.dispose();
		if (namespaceItemProvider != null) namespaceItemProvider.dispose();
		if (owningMembershipItemProvider != null) owningMembershipItemProvider.dispose();
		if (membershipItemProvider != null) membershipItemProvider.dispose();
		if (documentationItemProvider != null) documentationItemProvider.dispose();
		if (commentItemProvider != null) commentItemProvider.dispose();
		if (annotatingElementItemProvider != null) annotatingElementItemProvider.dispose();
		if (annotationItemProvider != null) annotationItemProvider.dispose();
		if (textualRepresentationItemProvider != null) textualRepresentationItemProvider.dispose();
		if (specializationItemProvider != null) specializationItemProvider.dispose();
		if (featureMembershipItemProvider != null) featureMembershipItemProvider.dispose();
		if (featureItemProvider != null) featureItemProvider.dispose();
		if (redefinitionItemProvider != null) redefinitionItemProvider.dispose();
		if (subsettingItemProvider != null) subsettingItemProvider.dispose();
		if (featureTypingItemProvider != null) featureTypingItemProvider.dispose();
		if (typeFeaturingItemProvider != null) typeFeaturingItemProvider.dispose();
		if (featureInvertingItemProvider != null) featureInvertingItemProvider.dispose();
		if (featureChainingItemProvider != null) featureChainingItemProvider.dispose();
		if (referenceSubsettingItemProvider != null) referenceSubsettingItemProvider.dispose();
		if (crossSubsettingItemProvider != null) crossSubsettingItemProvider.dispose();
		if (conjugationItemProvider != null) conjugationItemProvider.dispose();
		if (multiplicityItemProvider != null) multiplicityItemProvider.dispose();
		if (intersectingItemProvider != null) intersectingItemProvider.dispose();
		if (unioningItemProvider != null) unioningItemProvider.dispose();
		if (disjoiningItemProvider != null) disjoiningItemProvider.dispose();
		if (differencingItemProvider != null) differencingItemProvider.dispose();
		if (subclassificationItemProvider != null) subclassificationItemProvider.dispose();
		if (dataTypeItemProvider != null) dataTypeItemProvider.dispose();
		if (interactionItemProvider != null) interactionItemProvider.dispose();
		if (associationItemProvider != null) associationItemProvider.dispose();
		if (behaviorItemProvider != null) behaviorItemProvider.dispose();
		if (stepItemProvider != null) stepItemProvider.dispose();
		if (flowEndItemProvider != null) flowEndItemProvider.dispose();
		if (successionFlowItemProvider != null) successionFlowItemProvider.dispose();
		if (successionItemProvider != null) successionItemProvider.dispose();
		if (connectorItemProvider != null) connectorItemProvider.dispose();
		if (flowItemProvider != null) flowItemProvider.dispose();
		if (payloadFeatureItemProvider != null) payloadFeatureItemProvider.dispose();
		if (featureValueItemProvider != null) featureValueItemProvider.dispose();
		if (expressionItemProvider != null) expressionItemProvider.dispose();
		if (functionItemProvider != null) functionItemProvider.dispose();
		if (literalExpressionItemProvider != null) literalExpressionItemProvider.dispose();
		if (literalIntegerItemProvider != null) literalIntegerItemProvider.dispose();
		if (collectExpressionItemProvider != null) collectExpressionItemProvider.dispose();
		if (operatorExpressionItemProvider != null) operatorExpressionItemProvider.dispose();
		if (invocationExpressionItemProvider != null) invocationExpressionItemProvider.dispose();
		if (literalInfinityItemProvider != null) literalInfinityItemProvider.dispose();
		if (indexExpressionItemProvider != null) indexExpressionItemProvider.dispose();
		if (literalStringItemProvider != null) literalStringItemProvider.dispose();
		if (nullExpressionItemProvider != null) nullExpressionItemProvider.dispose();
		if (literalRationalItemProvider != null) literalRationalItemProvider.dispose();
		if (featureReferenceExpressionItemProvider != null) featureReferenceExpressionItemProvider.dispose();
		if (literalBooleanItemProvider != null) literalBooleanItemProvider.dispose();
		if (selectExpressionItemProvider != null) selectExpressionItemProvider.dispose();
		if (metadataAccessExpressionItemProvider != null) metadataAccessExpressionItemProvider.dispose();
		if (metadataFeatureItemProvider != null) metadataFeatureItemProvider.dispose();
		if (metaclassItemProvider != null) metaclassItemProvider.dispose();
		if (constructorExpressionItemProvider != null) constructorExpressionItemProvider.dispose();
		if (featureChainExpressionItemProvider != null) featureChainExpressionItemProvider.dispose();
		if (multiplicityRangeItemProvider != null) multiplicityRangeItemProvider.dispose();
		if (packageItemProvider != null) packageItemProvider.dispose();
		if (elementFilterMembershipItemProvider != null) elementFilterMembershipItemProvider.dispose();
		if (libraryPackageItemProvider != null) libraryPackageItemProvider.dispose();
		if (bindingConnectorItemProvider != null) bindingConnectorItemProvider.dispose();
		if (booleanExpressionItemProvider != null) booleanExpressionItemProvider.dispose();
		if (predicateItemProvider != null) predicateItemProvider.dispose();
		if (resultExpressionMembershipItemProvider != null) resultExpressionMembershipItemProvider.dispose();
		if (invariantItemProvider != null) invariantItemProvider.dispose();
		if (returnParameterMembershipItemProvider != null) returnParameterMembershipItemProvider.dispose();
		if (parameterMembershipItemProvider != null) parameterMembershipItemProvider.dispose();
		if (associationStructureItemProvider != null) associationStructureItemProvider.dispose();
		if (endFeatureMembershipItemProvider != null) endFeatureMembershipItemProvider.dispose();
		if (dependencyItemProvider != null) dependencyItemProvider.dispose();
		if (membershipImportItemProvider != null) membershipImportItemProvider.dispose();
		if (namespaceImportItemProvider != null) namespaceImportItemProvider.dispose();
		if (attributeDefinitionItemProvider != null) attributeDefinitionItemProvider.dispose();
		if (definitionItemProvider != null) definitionItemProvider.dispose();
		if (usageItemProvider != null) usageItemProvider.dispose();
		if (variantMembershipItemProvider != null) variantMembershipItemProvider.dispose();
		if (referenceUsageItemProvider != null) referenceUsageItemProvider.dispose();
		if (attributeUsageItemProvider != null) attributeUsageItemProvider.dispose();
		if (enumerationUsageItemProvider != null) enumerationUsageItemProvider.dispose();
		if (enumerationDefinitionItemProvider != null) enumerationDefinitionItemProvider.dispose();
		if (occurrenceUsageItemProvider != null) occurrenceUsageItemProvider.dispose();
		if (occurrenceDefinitionItemProvider != null) occurrenceDefinitionItemProvider.dispose();
		if (itemUsageItemProvider != null) itemUsageItemProvider.dispose();
		if (partUsageItemProvider != null) partUsageItemProvider.dispose();
		if (partDefinitionItemProvider != null) partDefinitionItemProvider.dispose();
		if (itemDefinitionItemProvider != null) itemDefinitionItemProvider.dispose();
		if (portUsageItemProvider != null) portUsageItemProvider.dispose();
		if (portDefinitionItemProvider != null) portDefinitionItemProvider.dispose();
		if (conjugatedPortDefinitionItemProvider != null) conjugatedPortDefinitionItemProvider.dispose();
		if (portConjugationItemProvider != null) portConjugationItemProvider.dispose();
		if (flowUsageItemProvider != null) flowUsageItemProvider.dispose();
		if (actionUsageItemProvider != null) actionUsageItemProvider.dispose();
		if (interfaceUsageItemProvider != null) interfaceUsageItemProvider.dispose();
		if (connectionUsageItemProvider != null) connectionUsageItemProvider.dispose();
		if (interfaceDefinitionItemProvider != null) interfaceDefinitionItemProvider.dispose();
		if (connectionDefinitionItemProvider != null) connectionDefinitionItemProvider.dispose();
		if (allocationUsageItemProvider != null) allocationUsageItemProvider.dispose();
		if (allocationDefinitionItemProvider != null) allocationDefinitionItemProvider.dispose();
		if (stateUsageItemProvider != null) stateUsageItemProvider.dispose();
		if (transitionUsageItemProvider != null) transitionUsageItemProvider.dispose();
		if (acceptActionUsageItemProvider != null) acceptActionUsageItemProvider.dispose();
		if (calculationUsageItemProvider != null) calculationUsageItemProvider.dispose();
		if (constraintUsageItemProvider != null) constraintUsageItemProvider.dispose();
		if (requirementUsageItemProvider != null) requirementUsageItemProvider.dispose();
		if (requirementDefinitionItemProvider != null) requirementDefinitionItemProvider.dispose();
		if (constraintDefinitionItemProvider != null) constraintDefinitionItemProvider.dispose();
		if (concernUsageItemProvider != null) concernUsageItemProvider.dispose();
		if (concernDefinitionItemProvider != null) concernDefinitionItemProvider.dispose();
		if (caseUsageItemProvider != null) caseUsageItemProvider.dispose();
		if (caseDefinitionItemProvider != null) caseDefinitionItemProvider.dispose();
		if (calculationDefinitionItemProvider != null) calculationDefinitionItemProvider.dispose();
		if (actionDefinitionItemProvider != null) actionDefinitionItemProvider.dispose();
		if (analysisCaseUsageItemProvider != null) analysisCaseUsageItemProvider.dispose();
		if (analysisCaseDefinitionItemProvider != null) analysisCaseDefinitionItemProvider.dispose();
		if (verificationCaseUsageItemProvider != null) verificationCaseUsageItemProvider.dispose();
		if (verificationCaseDefinitionItemProvider != null) verificationCaseDefinitionItemProvider.dispose();
		if (useCaseUsageItemProvider != null) useCaseUsageItemProvider.dispose();
		if (useCaseDefinitionItemProvider != null) useCaseDefinitionItemProvider.dispose();
		if (viewUsageItemProvider != null) viewUsageItemProvider.dispose();
		if (viewDefinitionItemProvider != null) viewDefinitionItemProvider.dispose();
		if (viewpointUsageItemProvider != null) viewpointUsageItemProvider.dispose();
		if (viewpointDefinitionItemProvider != null) viewpointDefinitionItemProvider.dispose();
		if (renderingUsageItemProvider != null) renderingUsageItemProvider.dispose();
		if (renderingDefinitionItemProvider != null) renderingDefinitionItemProvider.dispose();
		if (metadataUsageItemProvider != null) metadataUsageItemProvider.dispose();
		if (stateSubactionMembershipItemProvider != null) stateSubactionMembershipItemProvider.dispose();
		if (transitionFeatureMembershipItemProvider != null) transitionFeatureMembershipItemProvider.dispose();
		if (stateDefinitionItemProvider != null) stateDefinitionItemProvider.dispose();
		if (exhibitStateUsageItemProvider != null) exhibitStateUsageItemProvider.dispose();
		if (performActionUsageItemProvider != null) performActionUsageItemProvider.dispose();
		if (eventOccurrenceUsageItemProvider != null) eventOccurrenceUsageItemProvider.dispose();
		if (assertConstraintUsageItemProvider != null) assertConstraintUsageItemProvider.dispose();
		if (requirementVerificationMembershipItemProvider != null) requirementVerificationMembershipItemProvider.dispose();
		if (requirementConstraintMembershipItemProvider != null) requirementConstraintMembershipItemProvider.dispose();
		if (actorMembershipItemProvider != null) actorMembershipItemProvider.dispose();
		if (satisfyRequirementUsageItemProvider != null) satisfyRequirementUsageItemProvider.dispose();
		if (stakeholderMembershipItemProvider != null) stakeholderMembershipItemProvider.dispose();
		if (subjectMembershipItemProvider != null) subjectMembershipItemProvider.dispose();
		if (framedConcernMembershipItemProvider != null) framedConcernMembershipItemProvider.dispose();
		if (objectiveMembershipItemProvider != null) objectiveMembershipItemProvider.dispose();
		if (ifActionUsageItemProvider != null) ifActionUsageItemProvider.dispose();
		if (terminateActionUsageItemProvider != null) terminateActionUsageItemProvider.dispose();
		if (decisionNodeItemProvider != null) decisionNodeItemProvider.dispose();
		if (sendActionUsageItemProvider != null) sendActionUsageItemProvider.dispose();
		if (forkNodeItemProvider != null) forkNodeItemProvider.dispose();
		if (mergeNodeItemProvider != null) mergeNodeItemProvider.dispose();
		if (joinNodeItemProvider != null) joinNodeItemProvider.dispose();
		if (forLoopActionUsageItemProvider != null) forLoopActionUsageItemProvider.dispose();
		if (whileLoopActionUsageItemProvider != null) whileLoopActionUsageItemProvider.dispose();
		if (triggerInvocationExpressionItemProvider != null) triggerInvocationExpressionItemProvider.dispose();
		if (assignmentActionUsageItemProvider != null) assignmentActionUsageItemProvider.dispose();
		if (metadataDefinitionItemProvider != null) metadataDefinitionItemProvider.dispose();
		if (bindingConnectorAsUsageItemProvider != null) bindingConnectorAsUsageItemProvider.dispose();
		if (successionAsUsageItemProvider != null) successionAsUsageItemProvider.dispose();
		if (namespaceExposeItemProvider != null) namespaceExposeItemProvider.dispose();
		if (membershipExposeItemProvider != null) membershipExposeItemProvider.dispose();
		if (viewRenderingMembershipItemProvider != null) viewRenderingMembershipItemProvider.dispose();
		if (includeUseCaseUsageItemProvider != null) includeUseCaseUsageItemProvider.dispose();
		if (conjugatedPortTypingItemProvider != null) conjugatedPortTypingItemProvider.dispose();
		if (flowDefinitionItemProvider != null) flowDefinitionItemProvider.dispose();
		if (successionFlowUsageItemProvider != null) successionFlowUsageItemProvider.dispose();
	}

}
